A serial bus interface such as an IEEE 1394 interface can simultaneously connect a plurality of devices such as a DV (Digital Video), DC (Digital Camera), host computer, scanner, and VTR, unlike a so-called centronics parallel interface for one-to-one connection between a host computer and a terminal (device). This serial bus interface can realize a data communication network system or home network constructed by connecting a plurality of devices based on an IEEE 1394 standard as one of serial bus standards.
Various devices are connected to these networks, and many unspecified devices of different manufacturers may be connected.
According to IEEE 1394-1995, a maximum of 63 nodes can be connected to one 1394 bus (to be referred to as a “local bus” hereinafter) by an IEEE 1394 serial bus address designation method. If a 10-bit address space is defined for designation of a bus ID for specifying a bus, 1,023 buses can be connected to each other. In a cable environment, a cable between information signal processing apparatuses (to be referred to as “nodes” hereinafter) serving as devices is 4.5 m long at maximum.
To solve technical limitations posed when more than a connectable maximum of 63 devices are to be connected via an IEEE 1394 bus or a plurality of IEEE 1394 buses located at remote places are to be connected to each other, a device called a “1394 bridge” is generally used. By connecting a plurality of IEEE 1394 local buses via 1394 bridges, devices connected to the different local buses can communicate data.
In IEEE 1394, when the bus configuration changes by, e.g., an increase/decrease in the number of nodes upon insertion/removal of a device node, ON/OFF operation of the power supply, activation by hardware detection owing to a network error, or a direct instruction under host control from a protocol, a new network configuration must be recognized. In this case, each node which has detected the change transmits a bus reset signal to execute a mode in which a new network configuration is recognized.
This bus reset signal is transmitted to another nodes on the local bus. After all the nodes detect the bus reset signal, bus reset starts. When bus reset starts, data transfer is temporarily suspended. After the bus reset is finished, the suspended data transfer is restarted in a new network configuration.
In a device connected to an IEEE 1394 bus, a physical layer and data link layer in a transfer protocol are defined by IEEE 1394. As, for the upper layer, various upper protocols are defined and implemented in accordance with the intended use and application of a device.
The upper protocols of IEEE 1394 determine a connection establishment method in communicating data with a specific device using an IEEE 1394 bus, a resource management method, an application data transmission/reception method, a connection cancellation method at the end of data transfer, a resume method in bus reset which is a feature of IEEE 1394 in addition to resume from an error, and protocols before and after bus reset.
A DPP (Direct Print Protocol) as an example of the upper protocols defines that when bus reset occurs, a device which establishes a connection at the start of data transfer issues a reset command, and the other device returns an acknowledge upon reception of the command, thereby restarting data transfer.
An AV/C protocol defines that when bus reset occurs before a node which has received an AV/C command issued by the other node sends a response, the command itself becomes invalid, and the command issuing node cannot expect any response.
In this manner, when IEEE 1394 bus reset occurs, data transfer is temporarily suspended, and the network topology changes before and after bus reset. An upper protocol layer must cope with such a status change, so that the protocol standard defines procedures on both the data transmitting and receiving sides upon occurrence of bus reset. This definition allows continuing data transfer between devices which implement the same upper protocol without any influence because, if bus reset occurs, the data transmitting and receiving sides execute the defined appropriate processes in data transfer.
However, if bus reset occurs on one local bus connected to another IEEE 1394 bus, the IEEE 1394 bridge does not transfer the bus reset signal to the other local bus (to be referred to as a “remote bus” hereinafter), i.e., does not propagate bus reset between the busses. Therefore, an error may occur in data transfer between nodes via the bridge.
When data is transferred between devices on the same local bus using the above-mentioned upper protocols, bus reset is transmitted to all the nodes on the local bus. Accordingly, both the data transmission and reception nodes can detect bus reset, and can appropriately execute bus reset procedures by the upper protocols.
However, if bus reset occurs on one local bus during data transfer from a data transmission node on the local bus to a data reception node connected to the other local bus via an IEEE 1394 bridge, the IEEE 1394 bridge does not propagate bus reset to the other bus. Therefore, the node connected to the remote bus cannot detect the bus reset, only the device connected to the local bus executes a bus reset procedure by the upper protocol layer, and the processes between the data transmitting and receiving sides are inconsistent.